Faits :
A.
Le 30 décembre 2015, le Préfet du district de la Sarine a accordé à C.C._ et D.C._ une autorisation de construire ayant pour objet la démolition de trois garages et la construction d'une nouvelle habitation sur la parcelle 17063 de la Commune de Fribourg. L'opposition des voisins A.A._ et B.A._, copropriétaires de la parcelle 17061 contiguë, a été rejetée par cette même décision. La construction doit s'implanter le long de la limite avec la parcelle des opposants. De ce côté, la hauteur du mur en limite de propriété est de 3 m. La hauteur maximum du bâtiment concerné est en revanche de 4 m.
Statuant sur recours des opposants A._, la II e Cour administrative du Tribunal cantonal de l'Etat de Fribourg a confirmé cette décision par arrêt du 23 mars 2016.
B.
Agissant par la voie du recours en matière de droit public, A.A._ et B.A._ demandent au Tribunal fédéral d'annuler l'arrêt cantonal et de renvoyer la cause à la cour cantonale pour nouvelle décision dans le sens des considérants.
La cour cantonale et le Préfet de la Sarine se réfèrent aux considérants de l'arrêt attaqué et concluent au rejet du recours. La Commune de Fribourg, ainsi que les intimés C.C._ et D.C._, se déterminent et concluent au rejet du recours. Les recourants répliquent et persistent dans leurs conclusions.
Par ordonnance du 12 mai 2016, le Président de la Ire Cour de droit public a accordé l'effet suspensif au recours.
Considérant en droit :
1.
Dirigé contre une décision finale (art. 90 LTF) prise en dernière instance cantonale (art. 86 al. 1 let. d LTF) dans une cause de droit public (art. 82 let. a LTF), le recours est en principe recevable, aucune des exceptions prévues à l'art. 83 LTF n'étant réalisée. Le recours a été déposé dans le délai prescrit (art. 100 al. 1 LTF) si bien qu'il y a lieu d'entrer en matière.
2.
Dans leur écriture, les recourants présentent leur propre état de fait, sans toutefois exposer en quoi celui de l'arrêt attaqué aurait été établi de manière manifestement inexacte ou en violation du droit au sens de l'art. 95 LTF, ni en quoi la correction du vice serait susceptible d'influer sur le sort de la cause (art. 97 al. 1 LTF). Le Tribunal fédéral ne prend dès lors pas en considération la version présentée par les recourants et s'en tient à l'état de fait de l'arrêt cantonal.
3.
Les recourants se plaignent d'arbitraire dans l'application de l'art. 133 de la loi fribourgeoise du 2 décembre 2008 sur l'aménagement du territoire et les constructions (LATeC; RSF 710.1).
3.1. 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. Il ne s'écarte de la solution retenue par l'autorité cantonale de dernière instance que si celle-ci apparaît insoutenable, en contradiction manifeste avec la situation effective, adoptée sans motifs objectifs et en violation d'un droit certain. Si l'application de la loi défendue par l'autorité cantonale ne se révèle pas déraisonnable ou manifestement contraire au sens et au but de la disposition ou de la législation en cause, cette interprétation sera confirmée, même si une autre solution - éventuellement plus judicieuse - paraît possible (ATF 140 III 167 consid. 2.1 p. 168; 138 I 305 consid. 4.3 p. 319; 138 III 378 consid. 6.1 p. 379).
L'art. 132 LATeC fixe les règles sur les distances aux limites parcellaires. L'art. 133 LATeC prévoit que les propriétaires peuvent convenir, par écrit, de déroger aux prescriptions sur les distances par rapport aux limites de leurs fonds.
Il est généralement admis en droit suisse que, lorsque le sort d'une contestation pendante devant une autorité judiciaire ou administrative dépend de la solution d'une question préjudicielle qui relève en principe d'une autre juridiction, le juge compétent pour statuer sur la question principale l'est aussi pour trancher la question préjudicielle (ATF 137 III 8 consid. 3.3.1 p. 13; 131 III 546 consid. 2.3 p. 551; 90 II 158 consid. 3 p. 161). Ainsi, le juge administratif peut se prononcer sur des questions de droit civil (ATF 90 II 158 consid. 3 p. 161; 88 I 10; arrêt 1C_627/2015 du 3 août 2016 consid. 3.1). Sur le point préjudiciel toutefois, la décision ne constitue qu'un motif du jugement et ne jouit pas de l'autorité de la chose jugée (ATF 137 III 8 consid. 3.3.1 p. 13; 131 III 546 consid. 2.3 p. 551; 102 Ib 365 consid. 4 p. 369).
3.2. En l'espèce, la cour cantonale s'est référée à deux conventions du 23 janvier 2015, l'une manuscrite et l'autre dactylographiée, ainsi qu'aux plans qui s'y rapportaient. La convention manuscrite mentionne que la hauteur du mur de séparation entre les deux propriétés ne dépassera pas 3 m. La convention dactylographiée précise qu'il est dérogé aux règles de distances aux limites en vertu de l'art. 133 LATeC et que les propriétaires ont pris connaissance des plans. La cour cantonale a constaté que tant la hauteur de la façade que celle du bâtiment ressortaient de ces plans. Ce sont en outre ces mêmes plans qui ont ensuite été mis à l'enquête publique. Dans de telles circonstances, il n'y avait aucune raison de considérer que la convention n'était pas respectée en raison d'une hauteur du bâtiment de 4 m.
Cette appréciation est exempte d'arbitraire. Conformément à la jurisprudence précitée, les juges administratifs ont en effet examiné à titre préjudiciel le respect de la convention de dérogation des distances aux limites. Aussi, contrairement à ce qu'affirment les recourants, la question de la portée de la convention de dérogation n'a-t-elle pas été évitée. De même, c'est de manière appellatoire que les recourants affirment que la cour cantonale aurait relevé une contradiction entre la construction projetée telle qu'elle ressort des plans et celle prévue dans la convention manuscrite. L'arrêt attaqué ne dit rien de tel. En définitive, vu l'examen préjudiciel détaillé de la convention, les recourants ne démontrent pas en quoi les instances précédentes auraient fait preuve d'arbitraire en délivrant l'autorisation de construire avant que le juge civil se soit définitivement prononcé sur la portée de la convention. Le grief doit dès lors être écarté.
4.
Dans un second grief de fond, sommairement motivé, les recourants font valoir une violation de leur droit de propriété en relation avec l'art. 133 LATeC, dès lors que la dérogation accordée n'est pas conforme à leur réelle volonté.
4.1. La garantie de la propriété ancrée à l'art. 26 al. 1 Cst. n'est pas absolue. Comme tout droit fondamental, elle peut être restreinte aux conditions fixées à l'art. 36 Cst. La restriction doit ainsi reposer sur une base légale, être justifiée par un intérêt public et respecter le principe de la proportionnalité.
Les griefs de violation des droits fondamentaux sont soumis à des exigences de motivation accrues (art. 106 al. 2 LTF). La partie recourante doit alors mentionner les principes constitutionnels qui n'auraient pas été respectés et expliquer de manière claire et précise en quoi ces principes auraient été violés (ATF 136 II 489 consid. 2.8 p. 494).
4.2. Si l'on peut admettre qu'autoriser une construction en limite de propriété, en dérogation au règlement, porte atteinte au droit de propriété des recourants, ceux-ci ne démontrent pas en quoi cette atteinte ne respecterait pas les conditions posées par l'art. 36 Cst. Les recourants se contentent d'affirmer qu'il leur appartient de décider dans quelle mesure ils accordent la dérogation. Or, ainsi qu'on l'a vu, la portée de cette dérogation a été définie sur la base des conventions dont ils sont signataires, auxquels les plans du projet litigieux avaient été adjoints. Ils ne démontrent pas - ni même ne font valoir - que l'atteinte à leur droit de propriété ne répondrait pas à un intérêt public, serait dénuée de base légale ou disproportionnée. Supposé recevable, le grief devrait ainsi être écarté.
5.
Il résulte de ce qui précède que le recours doit être rejeté dans la mesure de sa recevabilité aux frais de ses auteurs, qui succombent (art. 66 al. 1 LTF). Les intimés, qui ont agi par l'intermédiaire d'un avocat, ont par ailleurs droit à des dépens, à charge des recourants (art. 68 al. 1 LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté, dans la mesure de sa recevabilité.
2.
Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge des recourants.
3.
Une indemnité de dépens de 2'000 francs est accordée aux intimés, à la charge des recourants.
4.
Le présent arrêt est communiqué aux mandataires des parties, à la Ville de Fribourg, à la Préfecture du district de la Sarine et au Tribunal cantonal de l'Etat de Fribourg, II e Cour administrative.
Lausanne, le 7 novembre 2016
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Fonjallaz
La Greffière : Sidi-Ali