Faits : A. A.a. En 2007, F.X._ et H.X._ (ci-après: les propriétaires, les mandants ou les défendeurs), qui vivaient alors en France, ont acheté un bien-fonds à... (canton de Vaud), comprenant une habitation de 167 m2 et une place-jardin de 2'557 m2. Ils ont chargé le bureau d'architectes Z._ SA (ci-après: l'architecte ou la demanderesse) d'établir notamment un devis de rénovation de l'habitation. Un premier projet de rénovation du 30 janvier 2008 comportant un agrandissement de l'habitation d'origine prévoyait un coût total de la construction de 1'584'183 fr. 51 avec la piscine (1'445'622 fr. 66 sans la piscine), y compris un montant de 203'126 fr. 47 d'honoraires d'architecte. Ce projet a été refusé par les propriétaires en avril 2008 parce qu'il était trop cher; ils ont aussi renoncé à l'agrandissement de l'habitation. A.b. Par devis du 18 avril, rectifié le 22 avril 2008, le coût des travaux de rénovation a été estimé par l'architecte au montant de 812'784 fr. 97, sans les plus-values (pour la cuisine et le parquet, dont chaque poste était pris en compte pour 40'000 fr.), y compris 120'176 fr. 82 d'honoraires d'architecte. Les parties n'ont pas passé de contrat écrit, ni n'ont déclaré applicable la Norme SIA 102. Les travaux de construction ont débuté en mai 2008. A.c. Déjà au 30 juillet 2008, le devis initial était dépassé d'environ 100'000 fr. puisque le coût des travaux passait de 812'784 fr. 97 à 911'177 fr. 23 (875'977 fr. 23 + 74'000 fr. - 38'800 fr.), le poste de maçonnerie devisé à 38'800 fr. passant notamment à 74'000 fr. (et sera même finalement de 149'500 fr.), à la suite d'une erreur d'estimation de l'architecte (art. 105 al. 2 LTF). Les honoraires d'architecte demeuraient inchangés. A réception du courrier l'en informant, le mandant s'est dit catastrophé, a déclaré qu'il ne pouvait pas se permettre un dépassement de son budget et a demandé que le nécessaire soit fait pour remédier à cette situation. La cour cantonale a retenu que les mandants n'ont pourtant pas renoncé, modifié ou restreint leur projet, dont les travaux n'avaient débuté qu'en mai 2008. A.d. Les travaux se sont terminés à fin décembre 2008. Le 9 mars 2009, l'architecte a informé les mandants que le coût des travaux était encore plus élevé, qu'ils avaient été adjugés pour 1'074'916 fr., coût que les mandants ont contesté, relevant un dépassement budgétaire d'environ 25% et précisant qu'ils n'auraient jamais accepté des modifications des devis s'ils avaient connu le dépassement total du projet. Finalement, le coût total de la rénovation, établi par l'expert judiciaire, s'est élevé à 1'311'848 fr. 64 (1'173'086 fr. 29 de factures payées par les défendeurs et 138'762 fr. 35 d'honoraires d'architecte), dont les premiers juges ont déduit 124'184 fr. 25 (travaux commandés en cours de chantier), 86'700 fr. (travaux à plus-value pour la cuisine, le parquet et la salle de bain) et 79'158 fr. 24 (travaux commandés après que l'architecte a quitté le chantier) et a arrêté le montant qui doit être comparé avec le devis du 22 avril 2008 à 1'021'806 fr. 15 (1'311'848 fr. 64 - 124'184 fr. 25 - 86'700 fr. - 79'158 fr. 24), d'où un dépassement de devis de 210'000 fr. (1'021'806 fr. 15 - 812'784 fr. 97) (art. 105 al. 2 LTF). Le dépassement comprend le dépassement de devis pour la maçonnerie de 110'700 fr. (149'500 fr. - 38'800 fr.) et d'autres dépassements non spécifiés dans l'arrêt. Il a été retenu que les seules économies faites, d'un montant de 30'000 fr., concernent les armoires posées, les mandants ayant opté pour des armoires IKEA, et que les économies sur les salles de bain n'ont pas été possibles, étant donné la configuration des lieux. A.e. Le 12 janvier 2010, l'architecte a fait notifier aux mandants un commandement de payer le montant de 80'000 fr. (poursuite n° 1 de l'Office des poursuites du district de Nyon). Le 5 mars 2010, les mandants ont fait notifier à l'architecte un commandement de payer le montant de 250'165 fr. (poursuite n° 2 de l'Office des poursuites du district de Morges). B. Le 10 mars 2010, l'architecte a ouvert action en paiement du solde de ses honoraires contre les mandants devant la Cour civile du Tribunal cantonal du canton de Vaud, concluant à leur condamnation à lui payer un montant qu'elle a arrêté finalement à 84'962 fr. 35 avec intérêts. Les mandants ont conclu au rejet de la demande et, reconventionnellement, à la condamnation de l'architecte à leur payer le montant qu'ils ont finalement arrêté à 350'000 fr. Les premiers juges ont confié un mandat d'expertise technique à A._, architecte EPFL-SIA, qui a déposé son rapport d'expertise le 11 novembre 2013 et un complètement d'expertise le 29 septembre 2014. L'expert a encore été entendu en audience du 6 octobre 2016. Par jugement du 6 octobre 2016, la Cour civile a condamné les défendeurs à payer solidairement à la demanderesse le montant de 43'333 fr. 65 avec intérêts à 5% l'an dès le 30 novembre 2009 (correspondant au solde des honoraires de l'architecte) et a levé définitivement l'opposition au commandement de payer formée par le défendeur à concurrence de ce montant; elle a constaté que la demanderesse n'est pas la débitrice du défendeur du montant de 250'165 fr. Les premiers juges ont retenu un dépassement de devis de 210'000 fr., mais ont considéré que les défendeurs n'ont pas allégué ni établi qu'ils auraient pris des décisions différentes s'ils avaient reçu une estimation exacte de la part de la demanderesse; ils ont donc nié qu'un montant puisse leur être alloué de ce chef. En revanche, sur la base des mêmes faits, ils ont retenu que l'architecte avait commis une erreur dans son devis en sous-estimant des coûts. L'erreur de cette dernière était manifestement fautive sur un point (travaux de maçonnerie) et la faute était présumée sur les autres points, puisque les défendeurs l'avaient formellement avisée que leur budget ne leur permettait pas de subir une augmentation de cet ordre. Les premiers juges ont réduit ses honoraires de 30%, soit de 41'628 fr. 70 (30% de 138'762 fr. 35) pour arrêter un montant de 97'133 fr. 65. Compte tenu du montant déjà encaissé de 53'800 fr, un solde de 43'333 fr. 65 restait dû. Statuant par arrêt du 4 juillet 2017, la Cour d'appel civile du Tribunal cantonal du canton de Vaud a rejeté l'appel des mandants et confirmé le jugement attaqué. La motivation de cet arrêt sera discutée dans la partie " droit ". C. Contre cet arrêt, les mandants ont interjeté un recours en matière civile au Tribunal fédéral le 11 septembre 2017, concluant en substance à sa réforme en ce sens que leur condamnation à payer le montant de 43'333 fr. 65 avec intérêts à la demanderesse soit remplacée par la condamnation de celle-ci à leur payer le montant de 166'666 fr. 35 avec intérêts à 5% l'an dès le 22 février 2010, l'opposition au commandement de payer étant levée à concurrence de ce montant (poursuite n° 2 de l'Office des poursuites du district de Morges); subsidiairement, ils concluent à l'annulation de l'arrêt et au renvoi de la cause à la cour cantonale pour nouvelle décision dans le sens des considérants. Ils ne contestent pas en tant que tel le solde des honoraires de l'architecte de 43'333 fr. 65, mais, comme sur rénovation, l'architecte est responsable d'un dépassement de devis de 210'000 fr., ils concluent à sa condamnation à leur payer le solde après compensation avec la créance d'honoraires, soit 166'666 fr. 65 (210'000 fr. - 43'333 fr. 65). Ils se plaignent d'établissement arbitraire des faits (art. 97 al. 1 LTF) et de violation de l'art. 398 CO. L'architecte intimée conclut au rejet du recours. En particulier, elle relève que si la question du dépassement de devis et de la limitation des coûts est une problématique qui est revenue constamment au cours du chantier, il ne peut en être déduit qu'il y aurait eu une garantie du coût de la construction ou une limite de celui-ci. Elle soutient aussi que les défendeurs n'ont pas allégué qu'ils auraient fait des choix différents, cas échéant lesquels, s'ils avaient connu le coût final. La cour cantonale se réfère aux considérants de son arrêt. Les parties ont encore déposé chacune de brèves observations.