I just throw everything into a cloudpickle:
import cloudpickle
model_fpath = '/Your/Path/Here.pkl'
with open(model_fpath, 'wb') as buff:
cloudpickle.dump({'model': model, 'trace': idata,'y_obs':y_obs}, buff)
and then to read:
with open(model_fpath, 'rb') as buff:
saved_model = cloudpickle.load(buff)
idata = saved_model['trace']