Faits :
A.
B._ et C._ sont propriétaires de la parcelle n° 436 de la commune de Prilly colloquée en zone de villas. Le bien-fonds supporte une maison comportant un rez-de-chaussée, un étage et des combles, couverte d'un toit à deux pans dont le faîte est orienté dans le sens de la pente, soit dans l'axe nord-sud. Sa façade ouest comporte, dans sa partie nord, un pignon secondaire qui forme une légère saillie; une construction basse est adossée au sud de cette même façade.
Les intéressés ont déposé une demande de permis de construire tendant à la rénovation de la maison existante et à la construction d'une annexe accolée à la façade ouest de la maison. L'annexe comporterait dans sa partie nord, soit devant le pignon secondaire, un rez-de chaussée et un étage dont la dalle supérieure formerait une terrasse d'environ 20 m2 avec barrière à laquelle on accéderait depuis la fenêtre des combles existants, agrandie en porte-fenêtre. Dans sa partie sud, qui engloberait la construction basse à démolir, l'annexe ne comprendrait qu'un rez-de-chaussée, couvert par une dalle en légère pente dont la couverture en zinc serait percée d'un éclairage zénital.
Mis à l'enquête du 19 octobre au 17 novembre 2013, le projet a suscité l'opposition de A._, propriétaire des unités d'étage n° 1146 et 1149 de la parcelle de base n° 433 adjacente au bien-fonds visé par le projet. Par décision du 12 mars 2014, la Municipalité a délivré le permis de construire, exigeant toutefois une couverture en tuiles, au lieu de zinc, pour la toiture sud de l'annexe. Par arrêt du 30 juillet 2014, le Tribunal cantonal a confirmé la décision municipale.
B.
Agissant par la voie du recours en matière de droit public, A._ demande au Tribunal fédéral de réformer l'arrêt cantonal en ce sens que la décision municipale octroyant le permis de construire est annulée. Subsidiairement, il conclut au renvoi de la cause à l'instance précédente pour nouvelle décision dans le sens des considérants. En substance, le recourant se plaint d'une application arbitraire du règlement communal concernant le plan d'extension (RPE), notamment en tant qu'il interdit les toits plats (art. 65 RPE).
Le Tribunal cantonal se réfère aux considérants de son arrêt et conclut au rejet du recours. La Municipalité et les intimés concluent également au rejet du recours aux termes de leurs observations respectives. Le recourant réplique; la Municipalité et les intimés dupliquent.
Par ordonnance du 19 septembre 2014, le Président de la Ire Cour de droit public a admis la requête d'effet suspensif du recourant.
Considérant en droit :
1.
Dirigé contre une décision finale rendue en dernière instance cantonale dans le domaine du droit public de l'aménagement du territoire et des constructions, le recours est en principe recevable comme recours en matière de droit public conformément aux art. 82 ss LTF. Aucune des exceptions prévues à l'art. 83 LTF n'est réalisée.
Le recourant a pris part à la procédure de recours devant le Tribunal cantonal (art. 89 al. 1 let. a LTF). En tant que propriétaire par étage de la parcelle voisine du projet, il est particulièrement touché par l'arrêt attaqué confirmant le rejet de son opposition à un projet de construction qu'il tient pour non conforme au règlement communal. Il peut ainsi se prévaloir d'un intérêt personnel et digne de protection à l'annulation de l'arrêt attaqué. Il a dès lors qualité pour agir au sens de l'art. 89 al. 1 LTF.
Les autres conditions de recevabilité sont par ailleurs réunies, si bien qu'il y a lieu d'entrer en matière sur le fond.
2.
Le Tribunal fédéral ne revoit l'interprétation et l'application du droit cantonal et communal que sous l'angle de l'arbitraire. Une décision est arbitraire lorsqu'elle viole gravement une norme ou un principe juridique clair et indiscuté, ou lorsqu'elle contredit d'une manière choquante le sentiment de la justice et de l'équité. Le Tribunal fédéral n'a pas à déterminer quelle est l'interprétation correcte que l'autorité cantonale aurait dû donner des dispositions applicables; il doit uniquement examiner si l'interprétation qui a été faite est défendable. Par conséquent, si celle-ci ne se révèle pas déraisonnable ou manifestement contraire au sens et au but de la disposition ou de la législation cantonale en cause, elle sera confirmée, même si une autre solution paraît également concevable, voire préférable. De plus, il ne suffit pas que les motifs de la décision attaquée soient insoutenables, encore faut-il que cette dernière soit arbitraire dans son résultat (ATF 138 I 305 consid. 4.4 p. 319; 138 III 378 consid. 6.1 p. 379). Dans ce contexte, le recourant est soumis aux exigences accrues de motivation de l'art. 106 al. 2 LTF (ATF 137 I 58 consid. 4.1.2 p. 62).
Le Tribunal fédéral s'impose de surcroît une certaine retenue quand il convient de tenir compte de circonstances locales dont les autorités cantonales ou communales ont une meilleure connaissance que lui (ATF 135 I 176 consid. 6.1 p. 181 et l'arrêt cité).
3.
Le recourant se plaint d'une application arbitraire de l'art. 65 RPE selon lequel "les attiques et les toits plats sont interdits".
En l'espèce, l'instance précédente a considéré que l'interdiction des toits plats, ancrée à l'art. 65 RPE, n'impliquait pas d'emblée l'interdiction des terrasses; elle a d'ailleurs noté que l'art. 31 RPE envisageait expressément l'existence de ces dernières en particulier lorsqu'elles étaient aménagées sur un terre-plein ou sur un sous-sol ou encore en encorbellement. L'instance précédente a ensuite considéré que le règlement communal ne permettait pas d'interdire la création d'une terrasse au niveau des combles et que, en tous les cas, la Municipalité pouvait autoriser la terrasse contestée dès lors que celle-ci ne présentait qu'une surface réduite par rapport au bâtiment principal (en l'espèce une surface de 20 m 2 accolée au bâtiment d'origine dont la surface était trois ou quatre fois supérieure).
Le recourant tient cette appréciation pour arbitraire. Il relève que les plans des intimés désignent bien la partie litigieuse de l'ouvrage par "toit-terrasse"; il affirme que l'ouvrage contesté ne constitue pas une terrasse en encorbellement, ni un balcon. Il soutient que cette dalle supérieure recouvre et protège l'ouvrage contre les intempéries, de sorte qu'elle correspond à la définition du "toit" donnée par la cour cantonale vaudoise dans un précédent arrêt (arrêt AC.2010.0122 du 26 juillet 2011 consid. 4c). A ses yeux, le raisonnement de l'instance précédente enlève toute portée à l'interdiction des toits plats inscrite à l'art. 65 RPE.
L'interprétation défendue par le recourant - à savoir que la terrasse litigieuse contrevient à l'interdiction des toits plats - aurait certes été concevable. Toutefois, l'appréciation de l'instance pr écédente n'apparaît pas arbitraire, à tout le moins dans son résultat. Il n'apparaît en effet pas insoutenable d'autoriser une terrasse dont la surface apparaît réduite (20 m 2 ) par rapport à celle de l'ensemble de la toiture en pente et qui est de plus en partie couverte par l'avant-toit coiffant le pignon secondaire sur une profondeur d'un mètre environ. Ce premier moyen doit dès lors être rejeté.
4.
Le recourant reproche ensuite à la cour cantonale d'avoir appliqué de façon arbitraire l'art. 64 RPE en autorisant l'agrandissement de la fenêtre des combles en porte-fenêtre.
Applicable aux combles habitables, l'art. 64 RPE dispose que "l'éclairage est assuré par des ouvertures, principalement sur les pignons des façades et, accessoirement, dans le pans de la toiture, limitées au strict nécessaire et intégrées à la construction".
Dans l'arrêt entrepris, l'instance précédente a considéré que, comme dans la plupart des règlements analogues, la disposition litigieuse avait pour but de limiter les ouvertures en toiture; elle ne visait dès lors pas à limiter l'ouverture litigieuse prenant jour sur la façade pignon.
En l'occurrence, dans une argumentation de nature purement appellatoire, le recourant se contente d'opposer sa propre appréciation à celle des juges cantonaux en affirmant que la limitation des ouvertures au strict nécessaire s'appliquerait aussi bien aux ouvertures qui se trouvent sur les pignons des façades qu'à celles qui sont pratiquées dans les pans de la toiture. Le recourant ne propose en effet aucune démonstration du caractère arbitraire de la motivation de l'arrêt attaqué. Il ne démontre pas non plus que la règlementation communale définirait de manière exhaustive la forme des ouvertures autorisées dans les combles; il se limite sur ce point à affirmer, dans sa réplique, que l'art. 64 RPE prévoit des ouvertures limitées au strict nécessaire pour "l'éclairage des combles" et non pas "pour un passage". Faute de satisfaire aux exigences de motivation de l'art. 106 al. 2 LTF, cette argumentation est irrecevable (cf. consid. 2 ci-dessus). Quoi qu'il en soit, l'arrêt cantonal échappe à l'arbitraire. En effet, le pouvoir d'appréciation que concède à l'autorité compétente la notion du "strict nécessaire" permet sans arbitraire d'autoriser cette porte-fenêtre puisqu'elle doit permettre l'éclairage des combles et l'accès à la terrasse située à ce niveau.
5.
Il résulte de ce qui précède que le recours doit être rejeté dans la mesure où il est recevable, aux frais du recourant qui succombe (art. 65 et 66 al. 1 LTF). Celui-ci versera en outre une indemnité de dépens aux intimés qui obtiennent gain de cause avec l'assistance d'un avocat (art. 68 al. 2 LTF). La Municipalité n'a pas droit à des dépens (art. 68 al. 3 LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
Les frais judiciaires, fixés à 3'000 fr., sont mis à la charge du recourant.
3.
Une indemnité de 3'000 fr. est allouée aux intimés à titre de dépens, à la charge du recourant.
4.
Le présent arrêt est communiqué aux mandataires des parties et de la Municipalité de Prilly ainsi qu'au Tribunal cantonal du canton de Vaud, Cour de droit administratif et public.
Lausanne, le 8 juin 2015
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Juge présidant : Merkli
La Greffière : Arn