Puedes crear un dict
con los datos del filtro:
filter_data = {'horsepower': horsepower, 'voltage': voltage, 'rpm': rpm}
Luego crea otro dict
con solo las claves cuyos valores existen:
filter_data = {key: value for (key, value) in filter_data.items()
if value}
Y finalmente use este dict como kwargs para su consulta:
results = Motor.query.filter_by(**filter_data).all()