Yes, the results will differ and I guess you would like to get the first result.
In your second example, a will be broadcasted if you call (a-b) to:
tensor([[-3., -4., -5.],
        [-2., -3., -4.],
        [-1., -2., -3.]])

, i.e. each row of a will be subtracted by b.