Hi,
This should be doable by simply adding input fields connected to fields on the profile while creating the landing page.
The major caveat though is that you only seem to be able to store stuff directly under the profile. So you would have to create a "Unsubscription reason" string field (or multiple flags/booleans in the case of checkboxes) in your profile custom resource that you connect your inputs on the landing page to.
This means more complex surveys would potentially cause issues as your profile would be cluttered. I've seen cases where "generic" survey response fields on the profile have been used, and then a workflow running at set intervals extracts the values from the profile and stores in another resource. Not a very nice solution though.
Regards,
Jonas