The commentators have several different approaches here. [Sources are from a shiur my father gives. Text copied either from Sefaria (first two) or his sourcesheet (last two).]
Rashi's take (17:17), based on Targum Onkelos, is that Avraham laughed out of joy, while Sarah's laugh was out of disbelief.
ויפל אברהם על פניו ויצחק. זה תירגם אנקלוס וחדי, לשון שמחה, ושל שרה לשון מחוך למדת שאברהם האמין ושמח, ושרה לא האמינה ולגלגה. וזהו שהקפיד הקדוש ברוך הוא על שרה ולא הקפיד על אברהם:
The Or Hachaim (18:13) says no, the Torah uses the same word (צ.ח.ק.) both times, so how can you translate it differently? Rather, the issue is in the timing -- Avraham laughed when he heard the news, but Sarah didn't believe that she would have a child until she actually saw her body change and her period return.
ויאמר ה' אל אברהם וגו'. צריך לדעת אומרו תיבת זה, עוד למה אמר תיבת לאמר. גם כל הכתוב מיותר שלא היה לו לומר אלא למה צחקה:
אכן הכוונה היא להיות שמצינו בפרשה הקודמת כי אברהם גם כן צחק כשאמר לו ה' בשורת הזרע דכתיב (פ' י''ז) ויפול אברהם וגו' ויצחק ולא ראינו שהקפיד ה' על שצחק אברהם, ויאמר האומר מה נשתנית צחיקת שרה מצחיקת אברהם. ומצינו לאונקלוס שנתכוון לתרץ זה במה שתרגם צחיקת אברהם וחדי וצחיקת שרה וחייכת אבל על מי סמך הקב''ה להבין ב' פירושים משונים בתיבה אחת:
אכן הנכון הוא כי הקב''ה דקדק בדבריו טעם הקפדתו על שרה ולא על אברהם, ותמצא כי אברהם בעת הבשורה צחק מה שאין כן שרה לא צחקה בעת שנתבשרה אלא בעת שראתה עדנה כאומרו ותצחק שרה וגו' אחרי בלותי היתה לי עדנה הרי זה מגיד כי לא נתאמת אצלה הבטחת הלידה עד שראתה השינוי ועל זה הקפיד ה', והוא אומרו למה זה צחקה פי' על צחוק זה אני מקפיד ולא על צחוק שלך, והטעם כי צחוק זה כוונתה לומר האף אמנם שנתאמת אצלה אחר מעשה שתלד וזה יגיד כי לא האמינה ולא סמכה דעתה על הבטחתי אותה כי הוא דבר פלא היפלא מה' דבר וגו':
The Bechor Shor (17:17) defends Avraham because he bowed in gratitude when laughing.
ויפל אברהם על פניו ויצחק:
נפילתו והשתחויתו מוכיחים שהאמין, כי דרך הודאה הוא שמח וצחק והודה והשתחוה.
ואמר: כמה נס גדול, וכמה טובה בכללה שמשנה סדרו של עולם עלי לטובה...
In case you haven't noticed, the commentators quoted above all defend Avraham's actions, for different reasons. The Midrash Hagadol (17:17) is one of the few who actually criticize Avraham. He says that Avraham was meant to understand from Sarah's rebuke that what he did was wrong without explicitly being told so.
מפני מה מיחה הכתוב בשרה ולא מיחה באברהם, שנאמר "ויפל אברהם על פניו ויצחק"? אלא ללמדך ששנים שעשו דבר שלא כהוגן והיה אחד מהם גדול ואחד קטן ואין ממחין אלא בקטן והגדול מרגיש מאליו.