I believe I have found the answer to my question. Since, tensors can only be concatenated when of identical size, I can simply concatenate each tensors of identical sizes in each of the lists in A and B to make 3D tensors.
For instance,
A = [torch.stack(x) for x in list(zip(*A))]
B = [torch.stack(x) for x in list(zip(*B))]

outputs two lists containing 4 3D tensors each having respectively k and n as first dimension. To stay coherent with the post, the first element in A has now the following size
A[0].size() == torch.Size([k, 128, 274])

Then flattening each of the tensors in dimension 1 and 2 + transposition allows standard faster matrix multiplication.
C = [(torch.mm(torch.flatten(a, start_dim=1),
               torch.flatten(b, start_dim=1).transpose(0,1)), dim=1) 
      for a, b in zip(A, B)]

This allowed my code to run 6x faster.