Improving Socratic Question Generation using Data Augmentation and Preference Optimization