Common Lisp has several different namespaces, and in function forms, the functional value of the operator is used. Your lambda example works, because lambda forms are a separate branch in the evaluation rules. You can just google for "Common Lisp namespaces" "Lisp-1 vs. Lisp-2" for more details, and there are quite a few questions and answers here on SO that cover those topics.
But, to answer your particular question, use funcall (you can also take a look at apply):
(funcall (makefun 1) 2)