Your question is rather broad. I will give a few thoughts off the top of my head.
First off, I recommend this forecasting workflow. (Little surprise there, since I wrote it up.) Decide what kind of forecast you want up front. Do you want expectation forecasts or quantiles for setting target stock levels? (As an aside, beware of using the MAE/MASE/wMAPE as an accuracy measure if you have intermittent data.)
You mention that your series are of unequal length. Of course, this should be included in your modeling, so only start modeling once the series is "active". If you can't distinguish no data before the product was activated from zero sales at the beginning of its activity, you could start modeling with the first nonzero sale.
Next, I would define a pool of "reasonable" forecasting models. These should include simple methods like the overall mean and exponential smoothing. Possibly ARIMA, but that is really usually not so good for forecasting accuracy. Perhaps Croston if you have lots of intermittent series (where the overall historical mean is often quite competitive). Consider building custom panel data models that can pool series where you expect common seasonalities or similar, e.g., you might expect similar seasonal patterns for a product in all stores, or for a group of products. Mohammadipour et al. (2012) proposes a simple way of pooling data for seasonality.
And simple is the way to go here. Two years of monthly data is very little, and 10 products in 20 stores is so, too. You will likely not be able to extract a lot of signal, and any complex method will very likely overfit. By all means try a Random Forest (for expectation forecasts - you could try a Quantile Forest for quantile forecasts), but it often does not work very well, and again, you don't have a lot of data.
For the actual method selection, I would go with a straight-up holdout set. Since you are interested in forecasting three months ahead, a logical holdout period would be three months. Fit your models to the first period, holding out the last three months, forecast into those and assess the accuracy using an appropriate error measure: (possibly scaled) (R)MSE for expectation forecasts, pinball losses for quantile forecasts. Possibly use weighting in aggregation, or slice the results in useful ways.
Note that I would not just apply all possible models to all series and pick the one model that performed best on any given series, because likely enough this will not be the best performing model going forward. Instead, use one or more model selection methods and see how this "meta-learner" performed. Tweak this method until it works well, as per the performance on the holdout set. (Don't over-optimize, because you can indeed overfit to the holdout set.)
Do consider averaging models rather than picking one, this very often works very well. Here, consider equal weights, which often work better than optimizing combination weights (the "Forecast Combination Puzzle").
Day of week and weather information will not be very useful for monthly data. Plus, you don't even have reliable weather forecasts for three months ahead, so the main benefit of using weather data is likely to cleanse past sales of the influence of major catastrophes like hurricanes. Then again, you might consider modeling on other granularities, like daily, where information you have on daily level might help, and then reconciling the daily and monthly forecasts (Athanasopoulos et al., 2017).