Small number of estimators in gradient boosting
First what is n_estimators:


  n_estimatorsinteger, optional (default=10)
   The number of trees in the forest.


Gradient Boosting and Random Forest are decision trees ensembles, meaning that they fit several trees and then they average(ensemble) them. 

If you have n_estimators=1, means that you just have one tree, if you have n_estimators=3 means that you have 3 trees and that it predicts the results of each tree and then it "averages" the result to get you the best. 

It is not a good idea to force hyperparameters, cross-validation is the way to go in hyperparameter selection.

If you make your search a bit bigger you might be able to find different results.  Per example move wider in the subsample, in the penalties, in the max depth...

More parameters to search will mean more computational time.