How to implement 32-bit adder logic using two 16-bit adders?
To chain smaller adders to make larger ones, you need the building-block adders to have carry in and carry out connections and you need to link those connections from one ader to the next.

Your diagram does not match your code, your diagram shows a carry connection, but your code does not.

You need to expand your add16 module to support carry in and out connections if it does not already do so, then connect them up as in the diagram you have drawn.

P.S. This is the sort of thing you would normally only do as an excercise, normally you just use the + operator to add things and let the synthesis tool sort it out.