The fact that it's 3 MPH over actual regardless of speed, rather than X% over actual, suggests that the bike's computer knows what speed you're actually going but they have programmed it to add 3 mph to that for what it shows you. If the discrepancy was a function of gearing or final drive or tire size or whatever, it would be a constant percentage off but a different number of MPH off at different speeds.
My past bikes have all been optimistic (I don't remember whether the KLR was or not), but I believe they were a constant percentage off. On my SV1000 the speedo was 6% fast at all speeds. When I put in a smaller countersprocket the speedometer became accurate, at all speeds. (IIRC)
Looking forward to seeing what the impact of a 16T countersprocket will be.