There is a process for this, although it isn't documented externally. You can reach out to support or your local salesforce contact and ask about "Marketing Cloud Alternate Key Store"
If you follow the standard process for lead conversions, what will happen is that the subscriber will be deactivated on all subscribers (the one with the lead id), and the contact will be created. Then, there will be two entries in the alternate key store - the primary id will be the contact id, and it will have related id (lead id).
I haven't actually explored the tracking inside marketing cloud (how it look with all subscribers), but i believe it should support this. I'm 95% sure that the individual email results list will reflect emails to both lead and contact, on the newly created contact, given that the alternate key store was created specifically for supporting the salesforce core object model.
The Email Tracking inside core, needs to migrated by the lead conversion process (not automatic I believe). Inside Marketing Cloud, tracking will be associated with two different subscriberId's, so you will need to account for that in your data modelling, segmentation etc.
The recommendation, generally, is to try and manage everything from a single object with it's the ContactId as the SubKey, if that is feasible in the solution at hand.