4 of 4 edited body

Haskell, 84 83 67 bytes

z=zipWith
e=[]:e
f l=foldr(\_->z(z(+))l.foldr(z(:).reverse)e)l"123"

Try it online!

Thanks to Laikoni and totallyhuman for saving a lot of bytes!