Faits :
A.
A.a. A._, née en 1980, a travaillé à temps partiel comme agente propreté-hygiène à l'Hôpital B._ du 1 er septembre 2005 au 30 septembre 2006. Le 5 août 2008, elle a déposé une première demande de prestations de l'assurance-invalidité. Par décision du 17 mars 2009, l'Office de l'assurance-invalidité du canton de Genève (ci-après : l'office AI) a nié le droit de l'assurée à des prestations.
A._ a repris ensuite une activité professionnelle à temps partiel, cumulant notamment un emploi de nettoyeuse auprès de C._ SA dès le 25 juillet 2013, de D._ SA dès le 31 juillet 2013, de E._ Sàrl dès le 3 octobre 2013 et de F._ SA dès le 3 janvier 2014.
A.b. En arrêt de travail depuis le 12 mai 2015, A._ a déposé une nouvelle demande de prestations le 11 septembre 2015. L'office AI a recueilli l'avis des médecins traitants, puis soumis l'assurée à une expertise psychiatrique. Dans un rapport établi le 16 février 2018, les psychiatres G._ et H._ ont diagnostiqué - avec répercussion sur la capacité de travail - un trouble de la personnalité émotionnellement labile de type borderline (depuis l'adolescence) et une agoraphobie avec trouble panique; la capacité de travail de l'assurée était nulle dans son activité habituelle ou dans une activité adaptée depuis le 14 juillet 2015.
L'office AI a ensuite demandé la réalisation d'une enquête économique sur le ménage. Selon le rapport du 23 avril 2018, l'assurée présentait un empêchement pondéré avec exigibilité de 16 % dans les tâches ménagères (compte tenu de l'aide apportée par son époux de 22,5 %). En application de la méthode mixte d'évaluation de l'invalidité, l'office AI a nié le droit de l'assurée à une rente d'invalidité par décision du 3 juillet 2018 (taux d'invalidité de 36 %).
B.
A._ a déféré cette décision à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, qui a requis la production du dossier de l'assurée par l'Office cantonal genevois de l'emploi. La Cour de justice a entendu les parties en audience de comparution personnelle, puis requis des informations complémentaires sur le temps de travail de l'assurée auprès des sociétés D._ SA et E._ Sàrl. Le 4 avril 2019, l'office AI a proposé à la Cour de justice d'admettre partiellement le recours en ce sens que l'assurée avait droit à une demi-rente d'invalidité (taux d'invalidité de 53 %). Statuant le 23 septembre 2019, la Cour de justice a partiellement admis le recours formé par l'assurée, annulé la décision du 3 juillet 2018 et octroyé trois quarts de rente à A._ dès le 1er juillet 2016.
C.
L'office AI forme un recours en matière de droit public contre ce jugement dont il demande la réforme en ce sens que l'assurée a droit à une demi-rente d'invalidité. Le recours est assorti d'une requête d'effet suspensif.
L'assurée conclut au rejet du recours et de la requête d'effet suspensif. L'Office fédéral des assurances sociales a renoncé à se déterminer sur le recours.

Considérant en droit :
1.
Le recours en matière de droit public peut être formé notamment pour violation du droit fédéral (<ref-law>), que le Tribunal fédéral applique d'office (<ref-law>), n'étant limité ni par les arguments de la partie recourante, ni par la motivation de l'autorité précédente. Le Tribunal fédéral fonde son raisonnement sur les faits retenus par la juridiction de première instance (<ref-law>) sauf s'ils ont été établis de façon manifestement inexacte ou en violation du droit au sens de l'<ref-law> (<ref-law>).
2.
Le litige porte sur l'étendue du droit de l'intimée à une rente de l'assurance-invalidité dès le 1er juillet 2016 (demi-rente au lieu du trois quarts de rente alloué par la juridiction cantonale). Le jugement entrepris expose de manière complète les dispositions légales et les principes jurisprudentiels applicables à la notion d'invalidité (<ref-law> et <ref-law>) et à l'évaluation de l'invalidité des personnes exerçant une activité lucrative à temps partiel et se consacrant en outre à leurs travaux habituels (au moyen de la méthode mixte). Il suffit d'y renvoyer.
3.
Est seul contesté le point de savoir si l'intimée aurait travaillé sans atteinte à la santé à 54,2 % au 1er juillet 2016, soit au moment déterminant de la naissance de son droit à une rente d'invalidité, ce qui en application de la méthode mixte ouvrirait le droit à trois quarts de rente.
3.1. Invoquant une appréciation arbitraire des preuves, l'office AI reproche à la juridiction cantonale d'avoir retenu que l'intimée aurait eu la volonté de maintenir, sans atteinte à la santé, le taux d'activité de 54,2 % qu'elle avait cumulé auprès de différents employeurs d'octobre 2013 à juillet 2014. Il soutient qu'un taux d'activité de 47,7 % au maximum devait être retenu car il reflétait la moyenne du taux d'activité cumulé de l'intimée du 25 juillet 2013 au 14 juillet 2015, soit pendant une période de temps suffisamment représentative pour établir sa volonté hypothétique. Avec un taux d'occupation de 47,7 % l'assurée aurait droit à une demi-rente d'invalidité.
3.2. L'office AI se limite en l'espèce à exposer son appréciation des faits à la suite du résumé de celle qui figure dans l'arrêt attaqué, puis de taxer cette dernière d'arbitraire car elle se fonde sur une "période isolée" de dix mois. Il ne prétend pas que la juridiction cantonale aurait cependant arbitrairement omis de constater que l'intimée avait souhaité baisser son taux d'activité dès août 2014 ou qu'elle se serait ultérieurement satisfaite d'un taux d'activité inférieur à celui de 54,2 %. Au contraire, l'intimée a affirmé lors de sa comparution personnelle devant les premiers juges qu'elle avait débuté une activité supplémentaire de deux heures par semaine auprès de la société I._ dès le mois d'août 2014, tandis que la société F._ SA a indiqué à l'office AI que l'assurée aurait augmenté son temps de travail sans atteinte à la santé en 2015 (passant de 8,60 à "env. 10" heures par semaine; communication du 10 novembre 2015). Il existe par conséquent des indices concrets que l'intimée avait cherché à pallier la baisse de son taux d'activité avant la survenance de son atteinte à la santé et qu'elle n'entendait donc pas s'en satisfaire. Dans ces circonstances, la juridiction cantonale pouvait retenir sans arbitraire que l'intimée aurait vraisemblablement cherché à maintenir, si elle eût été en bonne santé, un taux d'activité d'au moins 54,2 % au 1er juin 2016 (sur la volonté hypothétique d'un assuré, voir <ref-ruling> consid. 2.3 p. 30 et les références). Il n'y a pas lieu de s'écarter de l'appréciation des preuves des premiers juges.
4.
Mal fondé, le recours doit être rejeté. Le présent arrêt rend sans objet la requête d'effet suspensif présentée par l'office recourant.
L'office AI, qui succombe, supportera les frais judiciaires (<ref-law>). Bien qu'elle obtienne gain de cause, l'intimée, qui n'est pas représentée, n'a pas droit à des dépens (art. 68 al. 1 et 2 LTF; <ref-ruling> consid. 4 p. 136; <ref-ruling> consid. 4 p. 446).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge du recourant.
3.
Le présent arrêt est communiqué aux parties, à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 21 juillet 2020
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
Le Président : Parrino
Le Greffier : Bleicker