A faster way to accomplish this is with a spatial join for step 3, once your polygons have their unique number. Let's say UID is the field name for your unique ID from your dissolve polygons, Dissolve is your dissolve polygons, Polies is your target polygon, and outFC will be the full path of your resulting feature class.
Below I get a little fancy with field maps to limit the fields returned. Note I haven't tested the script.
#Create field mapmappings object
fms = arcpy.FieldMappings()
#Add fields from target
fms.addTable (Polies)
#Add UID field from dissolve
uidFm = arcpy.FieldMap ()
uidFm.addInputField (Dissolve, UID)
fms.addFieldMap (uidFm)
#Spatial join
arcpy.SpatialJoin_analysis (Polies, Dissolve, outFC, field_mapping = fms)