Smart Predict-then-Optimize for Two-Stage Linear Programs with Side Information