input: Write a python function to generate a list of the first day of the next 3 months from today.
  assert generate_next_three_months(datetime.date(2023, 1, 15)) == [datetime.date(2023, 2, 1), datetime.date(2023, 3, 1), datetime.date(2023, 4, 1)]
  assert generate_next_three_months(datetime.date(2023, 11, 30)) == [datetime.date(2023, 12, 1), datetime.date(2024, 1, 1), datetime.date(2024, 2, 1)]
  assert generate_next_three_months(datetime.date(2022, 12, 25)) == [datetime.date(2023, 1, 1), datetime.date(2023, 2, 1), datetime.date(2023, 3, 1)]
output: import datetime
  
  def generate_next_three_months(start_date):
      result = []
      year, month = start_date.year, start_date.month
      
      for _ in range(3):
          month += 1
          if month > 12:
              month = 1
              year += 1
          result.append(datetime.date(year, month, 1))
          
      return result