Faits :
A.
A.a. Les promoteurs immobiliers P1._ et P2._ sont associés gérants de la société à responsabilité limitée X._ Sàrl. P2._ est en outre administrateur unique de la société anonyme Y._ SA. Le but social de ces deux personnes morales est en substance de déployer des activités dans le domaine immobilier.
A.b. Ces personnes ont confié des projets immobiliers à deux bureaux d'architecture organisés en société anonyme, soit B._ & Architectes SA et B._ SA. Ces deux entités à la raison sociale proche ont une origine commune. Pendant un certain temps, elles ont oeuvré en étroite collaboration, travaillant dans les mêmes locaux jusqu'en novembre 2006 et partageant jusqu'en janvier 2007 deux administrateurs, dont l'architecte A._. B._ SA a alors quitté les locaux communs et les deux administrateurs ont perdu leur fonction auprès de B._ & Architectes SA.
C'est ainsi qu'en 2003, X._ Sàrl a confié l'élaboration d'un projet immobilier à B._ & Architectes SA; le projet a été traité par l'architecte A._. Ce dernier s'est ensuite occupé d'un projet en 2005, qui a donné lieu à un contrat d'architecte entre Y._ SA et B._ SA.
A.c. En novembre 2007, les deux promoteurs ont derechef sollicité l'architecte précité pour réaliser un projet de logement à... (GE). Un employé de B._ SA a établi les plans d'un premier projet qui n'a pas abouti.
B._ SA a alors élaboré un nouveau projet portant sur la construction de villas au même endroit. Le 6 mars 2008, elle a adressé à Y._ SA une première proposition de contrat relatif à ses prestations d'architecte. Ses honoraires, liés au coût prévisible de l'ouvrage (8'635'700 fr. hors taxes [HT]), étaient chiffrés à 830'000 fr. HT.
Par courriel du 18 juin 2009 envoyé par P2._, P1._ a rappelé à A._ qu'un administrateur de B._ & Architectes SA les avaient mis en contact; comme ils appréciaient le prénommé, ils avaient décidé de travailler avec son bureau B._ SA. Ils prenaient note qu'en vertu de l'accord convenu, les honoraires dudit bureau seraient payés «dès l'autorisation en force des différents permis de construire ».
Le 9 juillet 2009, B._ SA a envoyé à X._ Sàrl une nouvelle proposition de contrat concernant le projet de..., qui prévoyait les mêmes prestations d'architecte, mais augmentait le coût prévisible de l'ouvrage à 9'760'000 fr. HT, ce qui avait pour effet de porter à 923'000 fr. HT les honoraires d'architecte.
A.d. Les 27 juillet et 21 septembre 2009, A._, agissant pour B._ SA, a déposé pour le compte de X._ Sàrl une demande d'autorisation de construire portant sur 13 villas à.... Il a ensuite complété cette demande le 16 décembre 2009, cette fois pour le compte de P1._ et P2._.
Entre août 2009 et mars 2010, B._ SA a adressé à X._ Sàrl ainsi qu'aux deux promoteurs précités des notes de frais d'héliographie engagés dans le cadre du projet de... pour un total de 7'113 fr. 15.
A.e. Le 15 février 2010, l'architecte A._ a vainement demandé à P2._ de lui retourner un exemplaire signé du contrat d'architecte proposé le 9 juillet 2009.
Le 18 février 2010, B._ SA a adressé aux deux promoteurs une nouvelle variante de contrat dans lequel les prestations d'architecte se limitaient à l'établissement de l'avant-projet et du projet, ainsi qu'au suivi de la procédure d'autorisation de construire. Les honoraires y afférents étaient estimés à 418'000 fr. HT, à facturer dès l'obtention de l'autorisation de construire.
Le 23 mars 2010, P1._ et P2._ ont obtenu l'autorisation de construire les 13 villas projetées. Le lendemain, B._ SA leur a adressé une note d'honoraires de 418'000 fr. HT, soit 449'768 fr. toutes taxes comprises (TTC). Celle-ci n'a pas été payée nonobstant l'envoi de deux rappels.
En mai 2010, les deux promoteurs et la société X._ Sàrl ont demandé à B._ & Architectes SA d'examiner le projet de... établi par l'autre bureau d'architectes afin de l'améliorer.
Lors d'une séance de médiation entre X._ Sàrl et les deux bureaux d'architecture, il a été proposé de réduire les honoraires de B._ SA à 300'000 fr. HT, sans succès.
B.
B.a. Le 10 décembre 2010, B._ SA a déposé à l'encontre des sociétés X._ Sàrl et Y._ SA ainsi que des promoteurs P1._ et P2._ une demande en paiement de ses honoraires fixés à 449'768 fr. TTC.
Ensuite de l'échec de la conciliation, la demande a été introduite le 18 février 2011 devant le Tribunal de première instance du canton de Genève.
Le 17 octobre 2011, les défendeurs ont déposé une réponse concluant au rejet de cette demande en faisant notamment valoir que les deux sociétés actionnées n'avaient pas la légitimation passive. Dans leurs conclusions après enquêtes du 19 janvier 2015, ils ont conclu à l'irrecevabilité de la demande - subsidiairement à son rejet - en invoquant le défaut de légitimation active de B._ SA, ainsi que le défaut de légitimation passive de Y._ SA, P1._ et P2._. En contradiction avec leur première écriture, ils ont fait valoir que la seule partenaire de B._ SA était la société X._ Sàrl, P1._ et P2._ n'étant selon eux intervenus que comme organes de cette société, et non pas à titre personnel.
B.b. Par jugement du 7 août 2015, le Tribunal de première instance a condamné X._ Sàrl, P1._ et P2._, conjointement et solidairement, à verser à B._ SA 449'768 fr. plus intérêts à titre d'honoraires, ainsi que 7'113 fr. 15 plus intérêts pour les frais d'héliographie engagés.
En substance, le Tribunal a admis la légitimation active de B._ SA, estimant qu'au moment où les deux promoteurs avaient approché l'architecte A._ en novembre 2007 pour le projet de..., aucune confusion n'était possible avec B._ & Architectes SA [dont le prénommé avait aussi été l'administrateur]. Le Tribunal a par ailleurs dénié la légitimation passive à Y._ SA au motif que cette société n'était pas intervenue comme cocontractante dans le projet immobilier dont était issue la demande en paiement. Il a en revanche reconnu la légitimation passive de P1._, P2._ et X._ Sàrl, considérant que les deux premiers - propriétaires des parcelles visées par la promotion immobilière - étaient intervenus à titre personnel également et avaient formé une société simple avec X._ Sàrl dont ils étaient les organes. Enfin, le Tribunal a considéré que les parties étaient liées par un contrat d'entreprise, du fait que B._ SA avait été chargée d'établir des plans et différentes demandes d'autorisation de construire.
B.c. Les quatre parties défenderesses ont interjeté appel. Statuant par arrêt du 21 octobre 2016, la Chambre civile de la Cour de justice du canton de Genève a déclaré l'appel irrecevable en tant qu'il était interjeté par Y._ SA et a confirmé le jugement de première instance.
En substance, les juges cantonaux, à l'instar du premier juge, ont admis la légitimation active de B._ SA, confirmant qu'aucune confusion avec B._ & Architectes SA n'était possible; le courrier que celle-ci avait adressé aux défendeurs le 30 août 2010 ne permettait pas d'inférer que celle-là aurait sciemment entretenu une confusion quant à l'identité des différents partenaires des défendeurs.
Les juges cantonaux ont en outre constaté que si les défendeurs n'avaient signé aucun des contrats qui leur avaient été soumis, ils avaient néanmoins suivi l'évolution du projet d'ouvrage confié à la demanderesse, lui avaient donné des instructions et approuvé les plans qu'elle avait établis. Cette dernière pouvait de bonne foi inférer d'une telle attitude qu'un contrat d'entreprise lui avait été confié. Aussi les défendeurs devaient-ils la rémunérer pour les prestations d'architecte exécutées en application du contrat.
C.
P1._, P2._ et X._ Sàrl (ci-après: les défendeurs) ont interjeté un recours en matière civile au Tribunal fédéral, en concluant principalement à ce qu'il soit constaté qu'eux trois - subsidiairement P1._ et P2._ - ne doivent pas payer les montants de 449'768 fr. et 7'113 fr. 15 retenus par les instances genevoises. A titre subsidiaire, ils requièrent le renvoi de la cause à l'autorité précédente pour nouvelle décision dans le sens des considérants.
La demanderesse B._ SA a conclu à l'irrecevabilité du recours, subsidiairement à son rejet.
L'autorité précédente s'est référée à son arrêt.

Considérant en droit :
1.
1.1. Déposé en temps utile (<ref-law>) par les défendeurs qui ont succombé dans leurs conclusions libératoires (<ref-law>) et dirigé contre un arrêt final (<ref-law>) rendu sur recours par le tribunal supérieur du canton (<ref-law>) dans une contestation civile pécuniaire dont la valeur litigieuse est supérieure à 30'000 fr. (art. 72 al. 1 et 74 al. 1 let. b LTF), le recours en matière civile est recevable au regard de ces dispositions.
1.2. En annexe à leur réplique, les défendeurs ont produit des pièces nouvelles, soit deux articles de journaux et un rapport de la Commission fédérale des finances, qui seraient selon eux recevables devant le Tribunal fédéral dès lors que les articles de journaux n'étaient pas encore parus lorsque la cour cantonale a statué.
Force est toutefois de constater que l'on ne se trouve pas dans l'un des cas où le Tribunal fédéral peut exceptionnellement tenir compte de faits ou moyens de preuve nouveaux (cf. BERNARD CORBOZ, in Commentaire de la LTF, 2e éd. 2014, nos 19 à 27 ad <ref-law>). En effet, il ne suffit pas qu'un fait soit survenu ou qu'un moyen de preuve ait été découvert après la décision attaquée pour justifier une exception à l'interdiction des faits et moyens de preuve nouveaux (<ref-ruling> consid. 3.1.2; <ref-ruling> consid. 4.4.3; <ref-ruling> consid. 2.1). Au demeurant, les défendeurs n'indiquent nullement quels faits devraient être pris en compte sur la base des pièces nouvelles produites, se contentant d'affirmer que celles-ci apporteraient «un éclairage nouveau sur le contexte du dossier et en particulier la mise en oeuvre des obligations d'un éventuel mandat qu'aurait reçu [la demanderesse] de [la part des défendeurs]». Il ne sera donc tenu aucun compte de ces pièces nouvelles.
2.
2.1. Le Tribunal fédéral applique d'office le droit (<ref-law>) à l'état de fait constaté dans l'arrêt cantonal. Cela n'implique pas qu'il examine toutes les questions juridiques qui pourraient se poser, à l'instar d'un juge de première instance. Eu égard à l'obligation de motiver imposée par l'<ref-law>, l'autorité de céans ne traite que les questions qui sont soulevées devant elle par les parties, à moins que la violation du droit ne soit manifeste (<ref-ruling> consid. 2 p. 116; <ref-ruling> consid. 2).
2.2. En l'espèce, les défendeurs ne contestent devant le Tribunal fédéral ni la réalité de la conclusion d'un contrat d'entreprise, ni l'exécution régulière de ce contrat, ni l'exigibilité et la quotité de la créance découlant des prestations effectuées en vertu de ce contrat, mais uniquement la légitimation active de la demanderesse et leur propre légitimation passive s'agissant de cette créance. Il y a donc lieu d'examiner successivement ces deux questions, à la lumière des griefs soulevés par les défendeurs.
3.
3.1. En ce qui concerne la légitimation active de la demanderesse, reconnue par la cour cantonale, les défendeurs se plaignent d'une constatation inexacte des faits (cf. consid. 3.2 infra) et d'une violation du droit (cf. consid. 3.3 infra).
3.2.
3.2.1. Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (<ref-law>). Il ne peut rectifier ou compléter les constatations de l'autorité précédente que si elles sont manifestement inexactes ou découlent d'une violation du droit au sens de l'<ref-law> (<ref-law>). «Manifestement inexactes» signifie ici «arbitraires» (<ref-ruling> consid. 2 p. 117; <ref-ruling> consid. 1.5). Encore faut-il que la correction du vice soit susceptible d'influer sur le sort de la cause (<ref-law>).
La critique de l'état de fait retenu est soumise au principe strict de l'invocation énoncé par l'<ref-law> (<ref-ruling> consid. 2.3 p. 266 et les références). La partie qui entend attaquer les faits constatés par l'autorité précédente doit expliquer clairement et de manière circonstanciée en quoi ces conditions seraient réalisées (<ref-ruling> consid. 1.3.1 p. 18 et les références). Si elle souhaite obtenir un complètement de l'état de fait, elle doit aussi démontrer, par des renvois précis aux pièces du dossier, qu'elle a présenté aux autorités précédentes, en conformité avec les règles de la procédure, les faits juridiquement pertinents à cet égard et les moyens de preuve adéquats (ATF <ref-ruling> consid. 2 p. 90). Si la critique ne satisfait pas à ces exigences, les allégations relatives à un état de fait qui s'écarterait de celui de la décision attaquée ne pourront pas être prises en considération (<ref-ruling> consid. 1.3.1 p. 18).
3.2.2. En l'espèce, les défendeurs reprochent à la cour cantonale d'avoir méconnu le fait qu'ils avaient appris en 2010 seulement la «scission physique» entre les deux sociétés d'architecture avec lesquelles ils traitaient, soit B._ & Architectes SA d'une part et B._ SA d'autre part; la demanderesse aurait ainsi entretenu à dessein une confusion entre leurs différents partenaires au sein de ces sociétés.
La cour cantonale a jugé que cette allégation n'était pas établie par le courrier adressé aux défendeurs le 30 août 2010 par B._ & Architectes SA, dans lequel cette dernière rappelait notamment sa totale indépendance par rapport à B._ SA, déjà exprimée à plusieurs reprises, tout en reconnaissant l'origine historique commune de ces deux sociétés. Une telle pièce ne permettait pas de retenir que la demanderesse aurait sciemment entretenu une confusion quant à l'identité des différents partenaires des défendeurs.
Les défendeurs font valoir d'une part que l'allégation retenue «ne se fondait pas uniquement sur cette pièce mais également sur d'autres preuves et allégués sur lesquels l'instance d'appel ne s'est pas prononcée», et d'autre part que la cour d'appel aurait «tiré de la seule pièce considérée [i.e. le courrier du 30 août 2010] la conclusion inverse à celle qu'elle prescrit en bonne logique de conclure». Une telle critique ne répond manifestement pas aux exigences rappelées ci-dessus (cf. consid. 3.2.1 supra), dans la mesure où les défendeurs n'indiquent nullement dans leur mémoire de recours quels «autres preuves et allégués» régulièrement présentés en procédure cantonale auraient été ignorés par la cour d'appel. Le simple renvoi au mémoire d'appel est inopérant (<ref-ruling> consid. 3.2 in fine), ce qui exclut également d'entrer en matière sur le grief d'«éventuelle violation» du droit d'être entendu, alors qu'on ne discerne pas quels moyens invoqués en appel auraient été ignorés par l'autorité précédente. Pour le surplus, les défendeurs ne démontrent pas, et on ne discerne pas en quoi la cour d'appel aurait dû tirer du courrier en cause la conclusion souhaitée, à savoir l'entretien délibéré d'une confusion entre les deux sociétés.
Le grief de constatation inexacte des faits doit dès lors être rejeté dans la mesure où il est recevable.
3.3. Les défendeurs dénient à B._ SA la légitimation active, soit la qualité de faire valoir une prétention en tant que titulaire du droit, qui relève du droit de fond et dont le défaut engendre le rejet de l'action (cf. <ref-ruling> consid. 2b/bb; <ref-ruling> consid. 1a). Ils font valoir à cet égard que la confusion entre les deux bureaux d'architectes ne saurait être niée; «tout a[urait] été fait pour que la confusion entre les deux entités subsiste»; eux-mêmes n'auraient eu connaissance de la scission qu'au mois de juin 2010, affirmation dont ils auraient «apporté sinon la preuve, du moins la vraisemblance»; avant cette date, ils auraient été en relation avec la société B._ & Architectes SA et leur principal interlocuteur aurait été A._.
Ce faisant, les défendeurs n'invoquent la violation d'aucun principe de droit fédéral, mais développent une argumentation purement appellatoire fondée sur un état de fait qui s'écarte largement de celui retenu par la cour cantonale. En effet, il ne résulte pas de l'arrêt attaqué que les défendeurs n'auraient eu connaissance de la scission du bureau B._ & Architectes SA qu'au mois de juin 2010 - affirmation dont les défendeurs admettent d'ailleurs eux-mêmes n'avoir pas apporté la preuve -, ni que tout aurait été fait pour qu'une confusion subsiste entre cette société et B._ SA - confusion rendue possible par la similitude des raisons sociales, l'existence d'administrateurs communs jusqu'en janvier 2007 et de locaux communs jusqu'en novembre 2006. Il sied donc de s'en tenir aux faits constatés dans l'arrêt attaqué, sur le vu desquels la cour cantonale pouvait à bon droit retenir que la demanderesse avait la légitimation active s'agissant de la créance en paiement d'honoraires d'architecte déduite en justice.
4.
4.1. Les défendeurs soutiennent que l'arrêt attaqué consacrerait une violation du droit fédéral en tant qu'il écarterait «d'un revers de main» leur argument tiré du défaut de légitimation passive de certains d'entre eux. L'autorité précédente aurait omis d'examiner si P1._ et P2._ avaient agi pour leur propre compte ou en tant qu'organes de X._ Sàrl (cf. <ref-law>). Une telle société serait dépourvue d'utilité si ses associés gérants devaient de toute façon être exposés personnellement aux risques de la promotion immobilière. Il faudrait en conclure qu'ils ont agi pour le compte de cette personne morale en tant qu'associés gérants, et partant leur dénier la légitimation passive.
4.2. Cette argumentation tombe à faux au regard des faits constatés par la cour cantonale. En effet, il ressort clairement de l'arrêt entrepris que P1._ et P2._ ont également agi à titre personnel, notamment parce qu'ils étaient personnellement bénéficiaires des autorisations de démolir et des autorisations de construire liées au projet architectural confié à la demanderesse et étaient personnellement signataires du protocole d'accord conclu le 29 mars 2010 avec les différents voisins qui s'étaient opposés au projet de construction. En outre, ces deux défendeurs ont adopté une attitude contradictoire dans la procédure cantonale: en effet, dans leur mémoire de réponse du 17 octobre 2011, ils ont conclu au rejet de la demande en alléguant notamment que la société X._ Sàrl n'avait rien à voir avec le projet architectural confié à la demanderesse, de sorte qu'elle n'avait pas la légitimation passive; puis, dans leurs conclusions après enquêtes déposées le 19 janvier 2015, ils ont affirmé, de manière contradictoire avec leurs premiers propos, que finalement le seul partenaire de la demanderesse était la société X._ Sàrl, de sorte que la demande devait être déclarée irrecevable pour défaut de légitimation passive de P1._ et P2._, qui étaient intervenus uniquement comme organes de cette société (cf. supra lettre B.a). Dans ces conditions, l'autorité précédente pouvait à bon droit retenir que les trois défendeurs avaient la légitimation passive s'agissant de la créance en paiement d'honoraires d'architecte déduite en justice par la demanderesse.
5.
Il résulte de ce qui précède que le recours doit être rejeté.
Vu l'issue du recours, les frais de la présente procédure seront mis à la charge des défendeurs, à parts égales et solidairement entre eux (art. 66 al. 1 et 5 LTF). Ceux-ci seront condamnés solidairement à verser à la demanderesse une indemnité de 9'000 fr. à titre de dépens (art. 68 al. 1, 2 et 4 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 8'000 fr., sont mis à la charge des défendeurs, à parts égales et solidairement entre eux.
3.
Les défendeurs, à parts égales et solidairement entre eux, verseront à la demanderesse une indemnité de 9'000 fr. à titre de dépens.
4.
Le présent arrêt est communiqué aux mandataires des parties et à la Chambre civile de la Cour de justice du canton de Genève.
Lausanne, le 28 mars 2017
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente: Kiss
La Greffière: Monti