Church encoding is not the only option, since you already have pairs. So you can use base-1 list encoding, which is what lots of Kilo LISP programs do. Or you can implement natural numbers using lists of digits, which is still inefficient, but probably much faster than Church numerals.
Try this in kilo LISP:
(load 'src//nmath)
(times '(1 2 3) '(4))