Hi, welcome to the FEniCS community!.
Please note that when using mixed element, you need to split the function with ufl.split(fun)
to properly write the variational formulation.
u, p = ufl.split(uh)
This have been discussed already in, for example, Picard Iteration Not Updating Properly - #2 by kamensky .
Cheers.