Use APEX trigger Rules to update Record Type of created Account, Contact and Optionally
A little more complicated from development point of view but more efficient and easy to support solution.
Instead of the workflows this solution use a single APEX trigger with Helper class to handle all needed functionality.
Step 1: The same as above. Create three picklist fields on Lead object (Expected Account Type, Expected Contact Type, Expected Opportunity Type) and populate them with Record Types names you have for Accounts, Contacts and Opportunities objects. These field will be visible to Users to let them to select Record Type they want for created after Lead Conversion records.
Step 2: Create trigger and helper class. See code samples here: