This is because PyTorch will not automatically increase the number of dimensions a tensor has.
You would have to do one of the following:
b @ b.view(1,-1).t()      # `-1` expands to the number of elements in all existing dimensions (here: [3])

b @ b.expand(1,-1).t()    # `-1` means not changing size in that dimension (here: stay at 3)

b @ b.unsqueeze(1)        # unsqueeze adds `num` dimensions after existing ones (here 1 dimension)

EDIT: I think view() is the fastest solution, but you would need to benchmark to now for sure.