Puoi creare un dict
con i dati del filtro:
filter_data = {'horsepower': horsepower, 'voltage': voltage, 'rpm': rpm}
Quindi crea un altro dict
con solo le chiavi quali valori esistono:
filter_data = {key: value for (key, value) in filter_data.items()
if value}
E infine usa questo dict come kwargs per la tua domanda:
results = Motor.query.filter_by(**filter_data).all()