Hello!
Currently PySMT does not support this feature: the main reason is that not all the SMT solvers we use support it.
However, you can try using a single solver instance using solving under assumptions.
You can add all the non-common assertions as implications of fresh Boolean variables and the you ask for a solution assuming a subset of these Boolean variables.
For example:
with Solver(...) as s:
s.add_assertion(phi) # a fixed assertion, common to all the "instances"
x_ctrl = FreshSymbol(typing.BOOL)
y_ctrl = FreshSymbol(typing.BOOL)
s.add_assertion(Implies(x_ctrl, x)) # ading assertion x as an implication
s.add_assertion(Implies(y_ctrl, y)) # ading assertion y as an implication
s.solve() # solving for psi only
s.solve([x_ctrl]) # solving for psi & x
s.solve([y_ctrl]) # solving for psi & y
s.solve([x_ctrl, y_ctrl]) # solving for psi & x & y
HTH
Andrea