A subset of fields can be made unavailable in the new layer by using the Field Info control's visible property. The third column in the control provides a dropdown option to specify whether a field will be visible or hidden in the new layer. The default is TRUE. Selecting FALSE will hide that field. You cannot use the hidden fields in a workflow if the newly created layer is input to a subsequent process or tool. If the output is saved to disk, only the fields listed as visible will appear in the new data.
I found this example and made it even simpler. FC equals your feature class, fieldList equals what fields you want to keep. My code is below.
#Define function to take an input layer and output a layer with only a defined field list
def filter_fields(FC, fieldList):
# List input fields
# Create a fieldinfo objects
fieldinfo = arcpy.FieldInfo()
# Iterate over input fields, add them to the FieldInfo and hide them if
# they aren't in the list of fields to be kept
for field in fields:
if not field.name in fieldList:
fieldinfo.addField(field.name, field.name, "HIDDEN", "")
# Copy features to a layer using the FieldInfo
temp = "temp"
arcpy.MakeFeatureLayer_management(FC, temp, "", "", fieldinfo)
#Call the function