scipy.optimize.newton is numerical and requires f and fp to be callable, so a simple way to solve the issue is to transform f and fp into numerical callable functions with the fast_callable function :
sage: scipy.optimize.newton(fast_callable(f),1.5,fast_callable(fp))