Would this work:
outputs = []
for m,i in zip(module,input.permute(2,0,1)):
  outputs.extend([m(i)])

broadcasting works for elementwise tensor arithmetic like add, multiply etc., i am not sure if it comes into play for passing inputs to functions.