Is this what you are looking for?
a = np.repeat(trace['alpha'].reshape((-1,1)),len(y_tr), axis=1)
y_pred = a + np.dot(trace['betas'], X_tr.T)
That will generate a matrix of samples credible values of mu, one for each row in X_tr, Note that ignoring sigma will artificially create more certainty in these predictions that your model suggests.