Cardinals out-slugged by Astros in 9-3 loss